package xorm

import "gitee.com/KotlinToGo/xorm/builder"

// SQL 提供原始sql输入参数。当您具有复杂的SQL语句并且无法使用Where，Id，In等进行描述时，可以使用SQL。
func (s *Session) Sql(query interface{}, args ...interface{}) *Session {
	s.isSqlFunc = true
	s.statement.Sql(query, args...)
	return s
}

// Where 提供自定义查询条件。
func (s *Session) Where(query interface{}, args ...interface{}) *Session {
	s.statement.Where(query, args...)
	return s
}

// And provides custom query condition.
func (s *Session) And(query interface{}, args ...interface{}) *Session {
	s.statement.And(query, args...)
	return s
}

// Or provides custom query condition.
func (s *Session) Or(query interface{}, args ...interface{}) *Session {
	s.statement.Or(query, args...)
	return s
}

// ID 转换ID作为查询条件
func (s *Session) Id(id interface{}) *Session {
	s.statement.Id(id)
	return s
}

// In 提供查询字符串，例如“ id in（1、2、3）”。
func (s *Session) In(column string, args ...interface{}) *Session {
	s.statement.In(column, args...)
	return s
}

// NotIn 提供查询字符串，例如“ id not in（1、2、3）”
func (s *Session) NotIn(column string, args ...interface{}) *Session {
	s.statement.NotIn(column, args...)
	return s
}

// OmitConditions 从bean生成SQL条件时省略条件。
func (s *Session) OmitConditions(columns ...string) *Session {
	s.statement.OmitConditions(columns...)
	return s
}

// Cond 返回会话查询条件，但自动bean条件除外。
func (s *Session) Cond() builder.Cond {
	return s.statement.Cond()
}
